扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
二.struts中使用 DynaActionForm
使用表单是网页里面经常遇到的事情.利用struts的标签可以很好的完成这一功能.在struts中表单分为两种.一种是ActionForm..另外一种是DynaActionForm.所谓动态是在使用表单时不需要创建对就的bean文件.ActionForm很简单,在此只说说DynaActionForm.因为在这个小项目中在很多的用户输入.数据验证部分我放到了Action中进行.于是在表示层Form中只是接收数据.用DynaActionForm实现是个很好的选择.
index.jsp
这个页面中和使用静态表单没什么区别,只是在struts-config.xm配置稍微有些不同.
对应此表单的Action的配置:
和ActionForm的不同之处还在于在Action中获取提交的参数时要将ActionForm强制转换为DynaActionForm:
如何获取各参数如下:
动态表单有很多优点.比如可以实现跨页的表单提交.还过也有缺点比如此时它就不能将validate框架集成到里面.有个方法就是可心自己继承DynaActionForm类在其中添加validate方法.再将实际的应用中的Form继承此类.不过此时的将失去使用DynaActionForm的灵活性.只好自己权衡了.
三.struts中使用监听器类
监听器类顾名思义就是.某些事件的触发下能执行的动作.在servlet 中有这样的类专门监听网页中的动作.整理好下:
监听接口 | 监听对象 | 实现方法 |
ServletContextAttributeListener | 监听ServletContext的属性的操作 | 比如增加、删除、修改属性。 |
ServletContextListener | 监听ServletContext |
当创建ServletContext时,激发contextInitialized(ServletContextEvent sce)方法; 当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法。 |
HttpSessionListener | 监听HttpSession的操作 |
当创建一个Session时,激发session Created(HttpSessionEvent se)方法; 当销毁一个Session时,激发sessionDestroyed (HttpSessionEvent se)方法。 |
HttpSessionAttributeListener | 监听HttpSession中的属性的操作 |
当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se) 方法; 当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法; 当在Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se) 方法。 |
当然还有关于request对象操作的监听器类.在此不在敖述;下面举一个我使用的例子:使用监听器实现对数据库的访问,当应用启动时即访问数据库加载信息,监听器类如下:
为了使用启动应用时能调用到这个文件还必须在web.xml为监听器进行配置.
这个文件启动后ServletContext中的参数grammarCollection会被保存到ServletContext域中.在jsp或action文件中可使用getServletContext().getAttribute("grammarCollection")访问这个对象.
以上代码可以生成一个从数据库动态检索列表项的下拉列表.因为grammarCollection是一个Vector类型的对象.可以这样为其添加值对:
关于lisener的东西还很多.偶只是用到这么多,欢迎留言交流.
icai项目开发日记(三)....struts中Ajax的简单应用.....
婵″倹鐏夐幃銊╂姜鐢瓕鎻╅崚鍥╂畱閹厖绨$憴顤廡妫板棗鐓欓張鈧弬棰侀獓閸濅椒绗岄幎鈧張顖欎繆閹垽绱濋柇锝勭疄鐠併垽妲勯懛鎶姐€婄純鎴炲Η閺堫垶鍋栨禒璺虹殺閺勵垱鍋嶉惃鍕付娴f娊鈧柨绶炴稊瀣╃閵嗭拷